# 推导式（列表推导式、字典推导式、集合推导式）

# 列表推导式
# for循环
list1= []
for i in range(10):
    list1.append(i)

# 列表推导式[]
list2 = [i for i in range(10)] # 第一个i代表后面的for循环返回的数据
print(list2)

list3 = [r for r in range(10) if r % 2 == 0]
print(list3)

# 多个for循环的推导式(for嵌套循环，外层循环一次 里面的都要循环完，然后在循环外面的下一次)
list4 = [(i,j) for i in range(1, 3) for j in range(3)]
print(list4)

# 字典推导式{}
# 如果两个列表数据长度相同，则选择随意一个列表长度都可；
# 如果两个列表数据长度不同，则选择长度小的进行循环
list11 = ['name', 'age', 'height']
list12 = ['wangkun', '18', 189]
list13 = {list11[i] : list12[i] for i in range(len(list11))}
print(list13)

list15 = ['name', 'age', 'height', 'weight']
list16 = ['wangkun', '17', 189]
list17 = {list15[i] : list16[i] for i in range(len(list16))}
print(list17)

# 提取字典中目标数据
counts = {'MBP':245, 'HP': 124, 'DELL': 320, 'Lenovo': 321, 'acer': 90}
# 查找上述数据大于200的
count1 = {key:value for key,value in counts.items() if value >= 200}
print(count1)

# 集合推导式（去重功能）{}
list18 = [1,1,2]
list19 = {i**2 for i in list18}
print(list19)


